Apache POI লাইব্রেরি ব্যবহার করে আপনি Excel ফাইলে Chart তৈরি করতে পারেন। Charts হল একটি চমৎকার উপায়, যার মাধ্যমে আপনি ডেটাকে ভিজ্যুয়ালাইজ করতে পারেন, যেমন বার চার্ট, লাইনে চার্ট, পাই চার্ট ইত্যাদি। এখানে আমরা দেখব কীভাবে Embedded এবং Standalone Charts তৈরি করা যায়।
1. Embedded Chart তৈরি করা
Embedded Chart হল এমন একটি চার্ট যা Excel ফাইলে ডেটার সাথে একীভূত থাকে, অর্থাৎ চার্টটি একটি নির্দিষ্ট Sheet এর মধ্যে তৈরি হয়। এর জন্য XSSFSheet.createDrawingPatriarch() এবং XSSFDrawing.createChart() ব্যবহার করা হয়।
উদাহরণ: Embedded Chart তৈরি করা
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.util.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class EmbeddedChartExample {
public static void main(String[] args) throws IOException {
// নতুন একটি Workbook তৈরি করা
Workbook workbook = new XSSFWorkbook();
// নতুন Sheet তৈরি করা
Sheet sheet = workbook.createSheet("Sheet1");
// কিছু ডেটা যোগ করা
Object[][] data = {
{"Year", "Sales"},
{2019, 1000},
{2020, 1500},
{2021, 2000},
{2022, 2500}
};
// ডেটা সেল এ ইনপুট করা
int rowNum = 0;
for (Object[] rowData : data) {
Row row = sheet.createRow(rowNum++);
int colNum = 0;
for (Object cellData : rowData) {
Cell cell = row.createCell(colNum++);
if (cellData instanceof String) {
cell.setCellValue((String) cellData);
} else if (cellData instanceof Integer) {
cell.setCellValue((Integer) cellData);
}
}
}
// DrawingPatriarch তৈরি করা
XSSFDrawing drawing = (XSSFDrawing) sheet.createDrawingPatriarch();
// Chart তৈরি করা
XSSFChart chart = drawing.createChart(new XSSFClientAnchor(0, 0, 0, 0, (short) 5, 5, (short) 15, 25));
// Chart Data Set করা
ChartDataFactory factory = chart.getChartDataFactory();
CategoryChartData chartData = factory.createCategoryChartData();
CategoryChartSeries salesSeries = chartData.addSeries(new CategoryAxisData(new String[]{"2019", "2020", "2021", "2022"}), new NumericAxisData(new double[]{1000, 1500, 2000, 2500}));
chart.plot(chartData);
// Excel ফাইল সংরক্ষণ করা
try (FileOutputStream fileOut = new FileOutputStream("embedded_chart.xlsx")) {
workbook.write(fileOut);
}
// Workbook বন্ধ করা
workbook.close();
}
}
এখানে, আমরা Sheet1 এ কিছু সেল ডেটা যোগ করেছি এবং তারপরে একটি Embedded Bar Chart তৈরি করেছি। এটি Sheet1 এর মধ্যে অন্তর্ভুক্ত থাকবে এবং ওই শিটেই চার্টটি প্রদর্শিত হবে।
2. Standalone Chart তৈরি করা
Standalone Chart হল একটি চার্ট যা নির্দিষ্ট Chart Sheet হিসেবে তৈরি হয় এবং এটি Excel ফাইলের একটি আলাদা শিটে সংরক্ষিত থাকে। Chart Sheet এ তৈরি করা চার্টকে Standalone Chart বলা হয়, যেটি ডেটা শিটের বাইরে থাকে এবং মূল ডেটা থেকে আলাদা।
উদাহরণ: Standalone Chart তৈরি করা
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.util.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class StandaloneChartExample {
public static void main(String[] args) throws IOException {
// নতুন একটি Workbook তৈরি করা
Workbook workbook = new XSSFWorkbook();
// Data Sheet তৈরি করা
Sheet sheet = workbook.createSheet("Data");
// কিছু ডেটা যোগ করা
Object[][] data = {
{"Year", "Sales"},
{2019, 1000},
{2020, 1500},
{2021, 2000},
{2022, 2500}
};
// ডেটা সেল এ ইনপুট করা
int rowNum = 0;
for (Object[] rowData : data) {
Row row = sheet.createRow(rowNum++);
int colNum = 0;
for (Object cellData : rowData) {
Cell cell = row.createCell(colNum++);
if (cellData instanceof String) {
cell.setCellValue((String) cellData);
} else if (cellData instanceof Integer) {
cell.setCellValue((Integer) cellData);
}
}
}
// Chart Sheet তৈরি করা
XSSFSheet chartSheet = workbook.createSheet("Chart");
// Chart তৈরি করা
XSSFDrawing drawing = (XSSFDrawing) chartSheet.createDrawingPatriarch();
XSSFChart chart = drawing.createChart(new XSSFClientAnchor(0, 0, 0, 0, (short) 0, 0, (short) 15, 30));
// Chart Data Set করা
ChartDataFactory factory = chart.getChartDataFactory();
CategoryChartData chartData = factory.createCategoryChartData();
CategoryChartSeries salesSeries = chartData.addSeries(new CategoryAxisData(new String[]{"2019", "2020", "2021", "2022"}), new NumericAxisData(new double[]{1000, 1500, 2000, 2500}));
chart.plot(chartData);
// Excel ফাইল সংরক্ষণ করা
try (FileOutputStream fileOut = new FileOutputStream("standalone_chart.xlsx")) {
workbook.write(fileOut);
}
// Workbook বন্ধ করা
workbook.close();
}
}
এখানে, আমরা Data শিটে কিছু ডেটা ইনপুট করেছি এবং একটি আলাদা Chart শিট তৈরি করেছি, যেখানে Standalone Chart রাখা হয়েছে। এটি আলাদাভাবে প্রদর্শিত হবে এবং এটি অন্য শিট থেকে পৃথক থাকবে।
3. Chart Types
আপনি যে ধরনের চার্ট তৈরি করতে চান, তা নির্ভর করবে আপনার প্রয়োজনের উপর। কিছু সাধারণ chart types:
- Bar Chart: ডেটা তুলনা করতে।
- Line Chart: ডেটার পরিবর্তন বা প্রবণতা দেখাতে।
- Pie Chart: একটি নির্দিষ্ট ডেটার সমষ্টি বা অনুপাত দেখাতে।
- Area Chart: সমষ্টিগত প্রবণতা দেখাতে।
- Scatter Chart: দুটি ভেরিয়েবলের সম্পর্ক দেখাতে।
এছাড়া, Apache POI আরও অন্যান্য chart types সাপোর্ট করে, যেমন Doughnut, Radar, এবং Surface চার্ট।
সারাংশ
Apache POI ব্যবহার করে আপনি সহজেই Excel ফাইলের মধ্যে Embedded এবং Standalone চার্ট তৈরি করতে পারেন। Embedded Chart একটি নির্দিষ্ট শিটে ডেটার সাথে অন্তর্ভুক্ত থাকে, যেখানে Standalone Chart একটি পৃথক শিটে তৈরি হয়। আপনি বিভিন্ন ধরনের charts যেমন Bar Chart, Line Chart, Pie Chart, এবং আরও অন্যান্য প্রকারের চার্ট তৈরি করতে পারবেন, যা ডেটাকে ভিজ্যুয়ালাইজ করার জন্য খুবই কার্যকর।
Read more